草庐IT

ios - 字典的 NSArray

全部标签

c# - 双重检查字典 "ContainsKey"上的锁定

我的团队目前正在讨论这个问题。有问题的代码是if(!myDictionary.ContainsKey(key)){lock(_SyncObject){if(!myDictionary.ContainsKey(key)){myDictionary.Add(key,value);}}}我看到的一些帖子说这可能是一个很大的NONO(当使用TryGetValue时)。然而,我们团队的成员说这没问题,因为“ContainsKey”不会迭代key集合,而是通过O(1)中的哈希码检查key是否包含在内。因此他们声称这里没有危险。我想听听您对这个问题的诚实意见。 最佳答案

c# - IO绑定(bind)操作的并行执行

我已通读TPL和任务库文档。但是,我仍然不能很清楚地理解下面的案例,现在我需要实现它。我会简化我的情况。我有一个IEnumerable长度为1000。我必须使用HttpClient为他们提出请求.我有两个问题。没有太多的计算,只是在等待Http请求。这种情况下我还能用Parallel.Foreach()吗??如果使用Task相反,创建大量它们的最佳实践是什么?假设我使用Task.Factory.StartNew()并将这些任务添加到列表中并等待所有任务。是否有控制最大任务数和最大HttpClient的功能(例如TPL分区程序)我可以创作吗?SO上有几个类似的问题,但没有人提到最大值。要

c# - 使用 System.IO 在 C# 中复制文件夹

我需要将文件夹C:\FromFolder复制到C:\ToFolder下面的代码将剪切我的FromFolder,然后创建我的ToFolder。所以我的FromFolder将消失,所有项目都将位于新创建的名为ToFolder的文件夹中System.IO.Directory.Move(@"C:\FromFolder",@"C:\ToFolder");但我只想将FromFolder中的文件复制到ToFolder。由于某种原因,没有System.IO.Directory.Copy???这是如何使用批处理文件完成的-非常简单复制C:\FromFolderC:\ToFolder问候艾蒂安

c# - 以对象为值的字典

我在这里疯了。这可能是因为我错过了一些规则,但如果是这样,请告诉我。我正在尝试创建一个Dictionary,其中一个字符串作为键,一个匿名对象作为值。或者,实际上我不只是在尝试,我正在做。但是当我想改变对象中的特定参数时,它出错了。我这样声明字典:varareas=newDictionary{{"Key1",new{name="Name1",today=0,all=0}},{"Key2",new{name="Name2",today=0,all=0}},...}然后我假设我可以做到这一点:foreach(varareainareas.Keys.ToArray()){varareanam

c# - 可以将访问频率较低的元素保存到磁盘的字典

在我的应用程序中,我使用字典(支持添加、删除、更新和查找),其中键和值都可以序列化或可以序列化(值可能是非常大的对象图)。当字典变得如此之大以致于将它完全保存在内存中开始偶尔触发OutOfMemoryException(有时在字典方法中,有时在代码的其他部分)时,我遇到了一个问题。在尝试用数据库完全取代字典后,性能下降到无法接受的水平。对字典使用模式的分析表明,通常只有一小部分值是“热”值(经常访问),而其余部分(大部分)是“冷”值(很少或从不访问)。很难说什么时候添加新值是热值还是冷值,而且,随着时间的推移,一些值可能会在热值和冷值之间来回迁移。我认为我需要一个字典的实现,它能够在低

c# - 使用 xamarin 的移动跨平台本地化和仅 iOS 问题

我在Xamarin中有一个针对Android、iOS和WindowsPhone的项目。我使用核心(PCL库)在不同平台之间共享通用代码。我在我的核心库中添加了资源文件(.net资源).Resx,并在我的一个ViewModel中使用了以下代码片段来读取特定于文化的字符串:publicstringGetString(){//CommonResourcesisthenameofmyresourcefileResourceManagerresManager=newResourceManager(typeof(CommonResources));returnresManager.GetStrin

c# - 删除空文件夹并重新创建后出现 System.IO.DirectoryNotFoundException

我想复制一个文件夹,我想先删除目标文件夹。所以我要删除目标文件夹然后重新创建它然后复制文件。问题是我得到Anunhandledexceptionoftype'System.IO.DirectoryNotFoundException'occurredinmscorlib.dll尝试复制文件时。这是代码staticpublicvoidCopyFolder(stringsourceFolder,stringdestFolder){if(Directory.Exists(destFolder))//checkiffoldeexist{Directory.Delete(destFolder,tr

c# - json.net:为字典键指定转换器

我有一个JSON:{"data":{"A":5,"B":6},"foo":"foo","bar":"bar"}我需要将数据反序列化为一个类:publicDictionaryData{get;set;}publicstringFoo{get;set;}publicstringBar{get;set;}但MyEnum值是CodeA和CodeB而不是简单地分别是A和B。我有一个可以处理转换的自定义转换器。但是我如何指定一个JsonConverter来与字典键一起使用呢? 最佳答案 我相信唯一的方法是为整个Dictionary制作一个Jso

c# - 使用 LINQ 创建字典并避免 "item with the same key has already been added"错误

我想在字典中找到一个键,如果找到则替换值,如果找不到则添加键/值。代码:publicclassMyObject{publicstringUniqueKey{get;set;}publicstringField1{get;set;}publicstringField2{get;set;}}LINQ解决方案(抛出已添加具有相同键的项目。):DictionaryobjectDict=csvEntries.ToDictionary(csvEntry=>csvEntry.ToMyObject().UniqueKey,csvEntry=>csvEntry.ToMyObject());ForEach

c# - 从静态对象中包含的 C# 字典中释放内存

我在使用WCFWeb服务时遇到了一些问题(一些转储、内存泄漏等),并且我运行了一个profillng工具(ANTS内存配置文件)。只是为了发现即使处理结束(我运行特定测试然后停止),第2代也有25%的内存用于Web服务。我追踪这段内存,发现我有一个充满(null,null)项目的字典对象,哈希码为-1。Web服务的工作流意味着在特定的处理过程中,项目被添加然后从字典中删除(只是简单的Add和Remove)。没什么大不了的。但似乎在删除所有项目后,字典中充满了(null,null)KeyValuePair秒。实际上有数千个,以至于它们占据了很大一部分内存并最终发生溢出,相应的强制应用程序